/*
*********************************************************************************************************
*
*	模块名称 : 消息处理模块
*	文件名称 : bsp_msg.h
*	版    本 : V1.0
*	说    明 : 头文件
*
*	Copyright (C), 2013-2014, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/

#ifndef __BSP_MSG_H
#define __BSP_MSG_H

#define MSG_FIFO_SIZE    40	   		/* 消息个数 */



/* 按键FIFO用到变量 */
typedef struct
{
	uint16_t MsgCode;		/* 消息代码 */
	uint32_t MsgParam;		/* 消息的数据体, 也可以是指针（强制转化） */
}MSG_T;

/* 按键FIFO用到变量 */
typedef struct
{
	MSG_T Buf[MSG_FIFO_SIZE];	/* 消息缓冲区 */
	uint8_t Read;					/* 缓冲区读指针1 */
	uint8_t Write;					/* 缓冲区写指针 */
	uint8_t Read2;					/* 缓冲区读指针2 */
}MSG_FIFO_T;

/* 供外部调用的函数声明 */
void bsp_InitMsg(void);
void bsp_PutMsg(uint16_t _MsgCode, uint32_t _MsgParam);
uint8_t bsp_GetMsg(MSG_T *_pMsg);
uint8_t bsp_GetMsg2(MSG_T *_pMsg);
void bsp_ClearMsg(void);

#endif
/***************************************as follows example***********************************************************/
/*
enum 
{
	MSG_NONE = 0,
	
	MSG_MODS_01H,
	MSG_MODS_02H,
	MSG_MODS_03H,
	MSG_MODS_04H,
	MSG_MODS_05H,
	MSG_MODS_06H,
	MSG_MODS_10H,
	
	MSG_MODS,
};
int main()
{
	MSG_T ucMsg;
	while(1){
		if (bsp_GetMsg(&ucMsg))		//读取消息代码  
		{
			switch (ucMsg.MsgCode)
			{
				case MSG_MODS:		
					DispMenu();	// 打印消息
					break;
				
				default:
					break;
			}
		}
	}
	do{
		bsp_PutMsg(MSG_MODS, 0);
	}while(0);
}
*/
/******************************************************************************************************/

/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
